package com.soul.dubbo.api.mongo;

import com.soul.model.mongo.Movement;
import com.soul.model.vo.MovementsVo;
import com.soul.model.vo.PageResult;

import java.util.List;

/**
 * @author mdoya
 * @version 1.0
 * @description:
 */
public interface MovementApi {

    String addMovements(Movement movement);

    PageResult<Movement> findPageMovement(Long page, Long pageSize, Long userId);

    /**
     *  圈子 - 好友动态
     * @param page 每个码数
     * @param pagesize 每页条数
     * @param userId 登录用户id
     * @return PageResult
     */
    PageResult<Movement> findFriendPageMovements(Long page, Long pagesize, Long userId);
    /**
     *  圈子 - 推荐动态
     * @param page 每个码数
     * @param pagesize 每页条数
     * @param userId 登录用户id
     * @return PageResult
     */
    List<Movement> randomMovement(Long page, Long pagesize, Long userId);

    /**
     *  查询单挑动态
     * @param movementId 动态id
     * @return Movement
     */
    Movement findById(String movementId);

    /**
     *  根据ids查询动态
     * @param userIds ids集合
     * @return List<Movement>
     */
    List<Movement> findByIds(List<Long> userIds);

    /**
     * 根据用户ID分页查询用户发布的动态列表
     */
    PageResult findByUserId(Long uid, Integer state, Long page, Long pagesize);

    /**
     *  修改发布动态状态
     * @param movementId
     * @param state
     */
    void updateById(String movementId, Integer state);
}
